﻿using System;
using System.Collections.Generic;
using System.Net;
using System.Text;

namespace Marmat.Common.Http
{

    /// <summary>
    /// HttpApi请求的执行期间发生的错误。
    /// </summary>
    public class HttpApiException : Exception
    {
        /// <summary>
        /// 初始化系统的一个新的 HttpApiException 实例。
        /// </summary>
        public HttpApiException() : base()
        {
        }

        /// <summary>
        /// 初始化系统的一个新的 HttpApiException 实例。
        /// </summary>
        /// <param name="message">描述错误的消息。</param>
        public HttpApiException(string message) : base(message)
        {
        }

        /// <summary>
        /// 初始化系统的一个新实例。带有指定错误的异常类
        /// 消息和对引起此异常的内部异常的引用。
        /// </summary>
        /// <param name="message">解释异常原因的错误消息。</param>
        /// <param name="innerException">导致当前异常的异常或空引用</param>
        public HttpApiException(string message, Exception innerException) : base(message, innerException)
        {
        }

        /// <summary>
        /// 初始化系统的一个新实例。带有指定错误的异常类
        /// 消息和对引起此异常的内部异常的引用。
        /// </summary>
        /// <param name="context">解释异常原因的错误消息。</param>
        /// <param name="message">解释异常原因的错误消息。</param>
        /// <param name="innerException">导致当前异常的异常或空引用</param>
        public HttpApiException(ApiActionContext context, string message, Exception innerException) : base(message, innerException)
        {
            this.context = context;
        }
        /// <summary>
        /// 请求的上下文信息。
        /// </summary>
        public ApiActionContext context { get; }
    }
}
